As is known to those of skill in the art, a shift register is a data structure for recording a predetermined number, N, of data elements in order. As a new data element is received at the shift register, the existing data elements in the shift register are “shifted” by one data position to make room for the new data element and the new data element is stored in the first data position of the shift register.
Where a shift register has only N data positions (and thus can only store N data elements), if the shift register already has N data elements when it receives a new data element, the last (or oldest) data element is shifted out of the shift register to make room for the new data element. The data element that is shifted out (and the information related thereto) is then lost. In some cases, however, it is important to know what a shift register looked like before it was updated or before a certain event occurs. In these cases a copy or snapshot of the shift register is taken and stored before the shift register is updated or the event occurs. This process of taking and storing a snapshot of the shift register is called check pointing the shift register.
The embodiments described below are provided by way of example only and are not limiting of implementations which solve any or all of the disadvantages of known methods of check pointing a shift register.